/**
 * 
 */

package com.gustozzi.distribucion.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.gustozzi.distribucion.negocio.DistribucionBO;
import com.gustozzi.distribucion.negocio.impl.DistribucionBOImpl;
import com.gustozzi.domain.Cobranza;
import com.gustozzi.domain.Despacho;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * @author FABRIZIO
 * 
 */
public class ReporteDistribucionAction extends ActionSupport implements ServletRequestAware
{
    private static final long serialVersionUID = 1L;
    private String btnSeleccionado;
    private Despacho despachoBusqueda;
    private List<Despacho> listaDespachos;
    DistribucionBO distribucionBO = new DistribucionBOImpl();
    boolean indicadorConsulta;
    private ActionContext context;
    private Map<String,Object> appCon;
    public String execute()
    {
        String destino = "";

        try
        {
            if (btnSeleccionado.equalsIgnoreCase("Filtrar"))
            {
                destino = filtrar();
            }
            else if (btnSeleccionado.equalsIgnoreCase("Exportar"))
            {
                destino="SUCCESS";
            }
            else if (btnSeleccionado.equalsIgnoreCase("Cancelar"))
            {
                destino = "";
            }

        }
        catch (Exception e)
        {
            destino = "ERROR";
        }
        return destino;
    }

    public String filtrar()
    {
        System.out.println("METODO FILTRAR>>>>>>>>>>>>>>>>>>>>>>>>>");
        
        String destino = "";
        List<Despacho> lista = null;
        try
        {
            
            System.out.println("ANTES DE LLAMAR>>>>>>>>>>>>>>>>>>>>>>>>>");
            
            String codigo = despachoBusqueda.getCodigo();
            String codigoCentroDistribucion = despachoBusqueda.getCentroDistribucion().getCodigo();
            String fechaDesde = despachoBusqueda.getFechaDesde();
            String fechaHasta = despachoBusqueda.getFechaHasta();

            lista = new ArrayList<Despacho>();
            System.out.println("ANTES DE LLAMAR PROC>>>>>>>>>>>>>>>>>>>>>>>>>");
            lista = distribucionBO.obtenerListaDespacho(codigo, codigoCentroDistribucion, fechaDesde, fechaHasta);
            System.out.println("DESPUES DE LLAMAR PROC>>>>>>>>>>>>>>>>>>>>>>>>>");
            this.setListaDespachos(lista);

            
            
            context= ActionContext.getContext();
             appCon = context.getApplication();
            appCon.put("listaDespachos", listaDespachos);
            destino = "REPORTEDISTRIBUCION";
            
        }
        catch (Exception e)
        {
            destino = "ERROR";
        }
        return destino;
    }
    
    public String exportar()
    {
        String destino="SUCCESS";
        context= ActionContext.getContext();
        appCon = context.getApplication();
        listaDespachos = (List<Despacho>) appCon.get("listaDespachos");
        this.setListaDespachos(listaDespachos);
        return destino;
    }
    
    @SuppressWarnings("unchecked")
        public String exportarExcel()
        {
            
        
            String destino="SUCCESSEXCEL";
             context= ActionContext.getContext();
            appCon = context.getApplication();
            listaDespachos = (List<Despacho>) appCon.get("listaDespachos");
            this.setListaDespachos(listaDespachos);
            return destino;
            
        }
    

    /**
     * @return the despachoBusqueda
     */
    public Despacho getDespachoBusqueda()
    {
        return despachoBusqueda;
    }

    /**
     * @param despachoBusqueda
     *            the despachoBusqueda to set
     */
    public void setDespachoBusqueda(Despacho despachoBusqueda)
    {
        this.despachoBusqueda = despachoBusqueda;
    }

    /**
     * @return the listaDespachos
     */
    public List<Despacho> getListaDespachos()
    {
        return listaDespachos;
    }

    /**
     * @param listaDespachos
     *            the listaDespachos to set
     */
    public void setListaDespachos(List<Despacho> listaDespachos)
    {
        this.listaDespachos = listaDespachos;
    }

    @Override
    public void setServletRequest(HttpServletRequest arg0)
    {
    }

    /**
     * @param btnSeleccionado
     *            the btnSeleccionado to set
     */
    public void setBtnSeleccionado(String btnSeleccionado)
    {
        this.btnSeleccionado = btnSeleccionado;
    }
}
